Typically, large distributed applications are executed and managed by an application platform, which handles multiple applications. The application platform provides for the control of deployment options and placement decisions of application components on the IT infrastructure. For example, it receives packaged customer applications for deployment and can apply techniques such as:
1. Application component replication and placement,
2. Application component migration,
3. Prioritization of applications or application requirements, and
4. Application data quality/quantity level configuration (if configurable)
An IoT platform is an application platform which performs the aforementioned tasks on an IT infrastructure which includes edge as well as loud hosts in order to integrate and handle data and users that potentially do not only come from (or use) computers, but also mobile or embedded units with limited processing and communication capabilities. An IoT platform typically involves various further functionalities, which are not the subject of the present invention. Edge hosts refer to hosts that are co-located with either gateway devices (in fixed/broadband networks) or base stations (in mobile/3GPP networks) to which the end users connect directly (“one hop”), typically leading to user-to-edge latencies that are much lower than user-to-Cloud latencies.
Various approaches have appeared for optimizing (individually or jointly) the control parameters managed by the application (or IoT) platform, typically focusing around application component placement or virtual machine placement and being based on diverse optimization goals.
Kangasharju, Jussi, et al., “Object replication strategies in content distribution networks,” Computer Communications 25, no. 4, pp. 376-383 (2002) describe the problem of optimally replicating objects and deploying them in content distribution networks (across a network model that is based on the actual internet architecture). The problem is formulated as a decision problem and the optimization goal is set to finding the nodes to store the objects such that the average number of inter-node hops that a request must traverse from a client to an object is minimized. The average number of hops is chosen as an indicator of user latency. Along with the problem formulation, heuristics which are based on random, popularity and greedy algorithms are proposed to approximate the optimal solution.
Similarly, Alicherry, Mansoor, et al., “Network aware resource allocation in distributed clouds,” In Infocom, 2012 proceedings IEEE, pp. 963-971 (2012) study the problem of resource allocation in distributed clouds. The problem is formulated as selecting the data centers for virtual machine placement such that the maximum latency between any two of the chosen data centers is minimized. The infrastructure of data centers is considered as a graph with vertices that represent data centers and edges that represent the physical links among the nodes. The aim is set to finding the sub-graph of the initial network graph that achieves the optimization goal. Along with the problem formulation, a heuristic that is based on the clique problem of the graph theory is also proposed.